package com.vegetable.modules.service.finance;

import com.vegetable.common.utils.R;
import com.vegetable.modules.entity.finance.PaymentPurchase;

import java.util.Map;

/**
 * 银联支付服务接口
 *
 * @author Qoder
 */
public interface UnionPayService {

    /**
     * 执行单笔支付
     *
     * @param payment 付款信息
     * @return 支付结果
     */
    R executeSinglePayment(PaymentPurchase payment);
    
    /**
     * 执行单笔支付（包含收款人信息）
     *
     * @param payment 付款信息
     * @param payeeName 收款人全称
     * @param payeeBankAccount 收款人银行账号
     * @param payeeBankName 收款人开户行
     * @return 支付结果
     */
    R executeSinglePayment(PaymentPurchase payment, String payeeName, String payeeBankAccount, String payeeBankName);

    /**
     * 查询支付状态
     *
     * @param sysOrderId 系统订单号
     * @param mchntNo 商户编号
     * @param trxDate 交易日期
     * @return 支付状态
     */
    R queryPaymentStatus(String sysOrderId, String mchntNo, String trxDate);

    /**
     * 查询可代付余额
     *
     * @param mchntNo 商户编号
     * @return 余额信息
     */
    R queryPaymentBalance(String mchntNo);
}